﻿using ProTrack.Entity;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace ProTrack.IServices.Examine
{
    public interface IQcProcessStandardServices
    {
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="model">数据模型</param>
        /// <returns></returns>
        public Task<bool> AddAsync(QcProcessStandard model, List<QcProcessStandardItem> list);


        /// <summary>
        /// 查询所有数据
        /// </summary>
        /// <returns></returns>
        public Task<IEnumerable<QcProcessStandard>> GetAllAsync();
        /// <summary>
        /// 分页获取
        /// </summary>
        /// <param name="PageIndex">当前页</param>
        /// <param name="PageSize">页大小</param>
        /// <param name="Number">检验编号</param>
        /// <param name="Name">检验名称</param>
        /// <param name="Method">检验方式</param>
        /// <returns></returns>
        public Task<IEnumerable<QcProcessStandard>> GetAsync(int PageIndex, int PageSize, string Number, string Name, string Method);
        /// <summary>
        /// 获取总条数
        /// </summary>
        /// <param name="Number">检验编号</param>
        /// <param name="Name">检验名称</param>
        /// <param name="Method">检验方式</param>
        /// <returns></returns>
        public Task<int> GetCountAsync(string Number, string Name, string Method);
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="model">数据模型</param>
        /// <param name="list">子数据集合</param>
        /// <returns></returns>
        public Task<bool> UpdateAsync(QcProcessStandard model, List<QcProcessStandardItem> list);

        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="Ids"></param>
        /// <returns></returns>
        public Task<bool> DeleteAsync(int[] Ids);
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public Task<bool> DeleteAsync(int Id);

        /// <summary>
        /// 根据工序检测标准编号获取子表
        /// </summary>
        /// <param name="Number">工序检测标准编号</param>
        /// <returns></returns>
        public Task<IEnumerable<QcProcessStandardItem>> GetQcProcessStandardItemByNumber(string Number);



        /// <summary>
        /// 获取全部员工  
        /// </summary>
        /// <returns></returns>
        //public Task<IEnumerable<Employees>> GetTeamTypeAllAsync();
    }
}
